package cn.csc.module.pay.controller.admin.jzborder.vo;

import lombok.*;

import java.math.BigInteger;
import java.time.LocalDateTime;
import java.util.*;
import java.math.BigDecimal;
import java.math.BigDecimal;
import io.swagger.annotations.*;

import com.alibaba.excel.annotation.ExcelProperty;

/**
 * 见证宝订单表(冻结分账) Excel VO
 *
 * @author 曾铁树
 */
@Data
public class JzbOrderExcelVO {

    @ExcelProperty("标识Id(订单Id)")
    private BigInteger id;

    @ExcelProperty("交易日期")
    private LocalDateTime tradeDate;

    @ExcelProperty("商户ID")
    private BigInteger merchantId;

    @ExcelProperty("外部商家商户ID")
    private String appUserId;

    @ExcelProperty("订单金额")
    private BigDecimal amount;

    @ExcelProperty("退款撤销冻结金额")
    private BigDecimal cancelAmount;

    @ExcelProperty("支付订单ID")
    private BigInteger payOrderId;

    @ExcelProperty(value = "支付订单交易号")
    private String tradeNo;

    @ExcelProperty("支付订单状态,0:等待付款,1:交易成功,2:付款失败,3:取消订单,4:退款申请中,5:退款成功,6:订单过期")
    private Integer tradeStatus;

    @ExcelProperty("交易类型,0:其他,1:支付,2:充值,3:提现,4:转账,5:消费 6:冻结充值")
    private Integer tradeType;

    @ExcelProperty("第三方返回订单流水号")
    private String thirdId;

    @ExcelProperty("第三方状态 0:待处理 5:失败 10:成功 ")
    private Integer thirdStatus;

    @ExcelProperty("见证宝冻结状态，是否冻结(0:待冻结，1:冻结成功, 2:冻结失败,3:撤销冻结成功 4:撤销冻结失败  5:分账成功 6:分账失败 7:撤销分账成功 8:撤销分账失败 9:订单还未清算)")
    private Integer jzbFreezeStatus;

    @ExcelProperty("支付成功订单同步到平安银行状态(0:未同步见证宝,1:已同步见证宝)")
    private Integer jzbStatus;

    @ExcelProperty("见证宝返回前置流水号")
    private String jzbFrontLogNo;

    @ExcelProperty("支付类型 0001-微信")
    private String payChannelType;

    @ExcelProperty("冻结充值电商见证宝系统生成的流水号")
    private String freezeRechargeSeq;

    @ExcelProperty("冻结充值子订单的单号")
    private String freezeRechargeNo;

    @ExcelProperty("冻结充值成功时间")
    private LocalDateTime freezeTime;

    @ExcelProperty("撤销冻结充值电商见证宝系统生成的流水号")
    private String refundFreezeSeq;

    @ExcelProperty("撤销冻结充值成功时间")
    private LocalDateTime refundFreezeTime;

    @ExcelProperty("分账电商见证宝系统生成的流水号")
    private String divideSeq;

    @ExcelProperty("分账订单的子订单号")
    private String divideNo;

    @ApiModelProperty(value = "分账比例")
    private String divideRate;

    @ExcelProperty("撤销分账电商见证宝系统生成的流水号")
    private String refundDivideSeq;

    @ExcelProperty("撤销分账成功时间")
    private LocalDateTime refundDivideTime;

    @ExcelProperty("分账成功时间")
    private LocalDateTime divideTime;

    @ExcelProperty("手续费")
    private BigDecimal formality;

    @ExcelProperty(value = "华正支付手续费率")
    private String handFeeRate;

    @ExcelProperty("备注")
    private String remarks;

    @ExcelProperty("创建时间(订单生成时间)")
    private LocalDateTime createTime;

}
